package com.ruoyi.syf.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.syf.domain.RiskAnalysisUnit;
import com.ruoyi.syf.domain.vo.RiskAnalysisUnitVo;

import java.util.List;

/**
 * 安全分析单元Service接口
 *
 * @author ruoyi
 * @date 2024-07-04
 */
public interface IRiskAnalysisUnitService extends IService<RiskAnalysisUnit> {
    /**
     * 查询安全分析单元
     *
     * @param id 安全分析单元主键
     * @return 安全分析单元
     */
    public RiskAnalysisUnit selectRiskAnalysisUnitById(Long id);

    /**
     * 查询安全分析单元列表
     *
     * @param riskAnalysisUnit 安全分析单元
     * @return 安全分析单元集合
     */
    public List<RiskAnalysisUnitVo> list(RiskAnalysisUnitVo riskAnalysisUnit);

    /**
     * 新增安全分析单元
     *
     * @param riskAnalysisUnit 安全分析单元
     * @return 结果
     */
    public int insertRiskAnalysisUnit(RiskAnalysisUnit riskAnalysisUnit);

    /**
     * 修改安全分析单元
     *
     * @param riskAnalysisUnit 安全分析单元
     * @return 结果
     */
    public int updateRiskAnalysisUnit(RiskAnalysisUnit riskAnalysisUnit);

    /**
     * 根据对象ID批量修改安全分析单元状态
     *
     * @param objectId 对象ID
     * @param status   当前状态
     * @param reason   停工原因
     */
    boolean upStatusList(Long objectId, Boolean status, String reason);

    /**
     * 修改安全分析单元状态
     *
     * @param id     单元ID
     * @param reason 停工原因
     */
    boolean upStatus(Long id, String reason);

    boolean upUnitScan(Long id);

    /**
     * 批量删除安全分析单元
     *
     * @param ids 需要删除的安全分析单元主键集合
     * @return 结果
     */
    public int deleteRiskAnalysisUnitByIds(Long[] ids);

    /**
     * 删除安全分析单元信息
     *
     * @param id 安全分析单元主键
     * @return 结果
     */
    public int deleteRiskAnalysisUnitById(Long id);

    /**
     * 校验是否是扫码排查
     */
    public void isScan(Long id) throws IllegalAccessException;

}
